import '../shared/models/word.dart';

class EsperantoVocabularyBatch4 {
  // 工作职业词汇 (100个)
  static final List<Word> professionWords = [
    // 基础职业
    Word(id: 'kuracisto_002', esperanto: 'kuracisto', english: 'doctor', pronunciation: 'ku-ra-CIS-to', definition: 'Medical professional', examples: ['La kuracisto ekzamenas pacienton (The doctor examines a patient)'], category: 'Professions', difficulty: 1, audioUrl: ''),
    Word(id: 'instruisto_002', esperanto: 'instruisto', english: 'teacher', pronunciation: 'ins-tru-IS-to', definition: 'Educational professional', examples: ['La instruisto klarigas la lecionon (The teacher explains the lesson)'], category: 'Professions', difficulty: 1, audioUrl: ''),
    Word(id: 'policisto_001', esperanto: 'policisto', english: 'police officer', pronunciation: 'po-li-CIS-to', definition: 'Law enforcement officer', examples: ['La policisto direktas la trafikon (The police officer directs traffic)'], category: 'Professions', difficulty: 1, audioUrl: ''),
    Word(id: 'fajrobrigadisto_001', esperanto: 'fajrobrigadisto', english: 'firefighter', pronunciation: 'faj-ro-bri-ga-DIS-to', definition: 'Fire suppression professional', examples: ['La fajrobrigadisto estingas fajron (The firefighter extinguishes fire)'], category: 'Professions', difficulty: 2, audioUrl: ''),
    Word(id: 'inĝeniero_001', esperanto: 'inĝeniero', english: 'engineer', pronunciation: 'in-ĝe-ni-E-ro', definition: 'Technical design professional', examples: ['La inĝeniero projektas pontonon (The engineer designs a bridge)'], category: 'Professions', difficulty: 2, audioUrl: ''),
    Word(id: 'advokato_001', esperanto: 'advokato', english: 'lawyer', pronunciation: 'ad-vo-KA-to', definition: 'Legal professional', examples: ['La advokato defendas sian klienton (The lawyer defends his client)'], category: 'Professions', difficulty: 2, audioUrl: ''),
    Word(id: 'ĵurnalisto_001', esperanto: 'ĵurnalisto', english: 'journalist', pronunciation: 'ĵur-na-LIS-to', definition: 'News reporting professional', examples: ['La ĵurnalisto intervjuas politikiston (The journalist interviews a politician)'], category: 'Professions', difficulty: 2, audioUrl: ''),
    Word(id: 'kontisto_001', esperanto: 'kontisto', english: 'accountant', pronunciation: 'kon-TIS-to', definition: 'Financial professional', examples: ['La kontisto kalkulas la imposton (The accountant calculates the tax)'], category: 'Professions', difficulty: 2, audioUrl: ''),
    Word(id: 'arkitekto_001', esperanto: 'arkitekto', english: 'architect', pronunciation: 'ar-ki-TEK-to', definition: 'Building design professional', examples: ['La arkitekto desegnas novan domon (The architect draws a new house)'], category: 'Professions', difficulty: 2, audioUrl: ''),
    Word(id: 'kuiristo_001', esperanto: 'kuiristo', english: 'chef', pronunciation: 'ku-i-RIS-to', definition: 'Professional cook', examples: ['La kuiristo preparas delikatan manĝaĵon (The chef prepares delicate food)'], category: 'Professions', difficulty: 1, audioUrl: ''),
    
    // 技术职业
    Word(id: 'programisto_001', esperanto: 'programisto', english: 'programmer', pronunciation: 'pro-gra-MIS-to', definition: 'Software developer', examples: ['La programisto skribas kodon (The programmer writes code)'], category: 'Professions', difficulty: 2, audioUrl: ''),
    Word(id: 'teknikisto_001', esperanto: 'teknikisto', english: 'technician', pronunciation: 'tek-ni-KIS-to', definition: 'Technical specialist', examples: ['La teknikisto riparas komputilon (The technician repairs a computer)'], category: 'Professions', difficulty: 2, audioUrl: ''),
    Word(id: 'elektrikisto_001', esperanto: 'elektrikisto', english: 'electrician', pronunciation: 'e-lek-tri-KIS-to', definition: 'Electrical specialist', examples: ['La elektrikisto instalas novajn dratojn (The electrician installs new wires)'], category: 'Professions', difficulty: 2, audioUrl: ''),
    Word(id: 'mekanikisto_001', esperanto: 'mekanikisto', english: 'mechanic', pronunciation: 'me-ka-ni-KIS-to', definition: 'Machine repair specialist', examples: ['La mekanikisto riparas aŭton (The mechanic repairs a car)'], category: 'Professions', difficulty: 2, audioUrl: ''),
    Word(id: 'konstruisto_001', esperanto: 'konstruisto', english: 'builder', pronunciation: 'kon-stru-IS-to', definition: 'Construction worker', examples: ['La konstruisto konstruas novan domon (The builder builds a new house)'], category: 'Professions', difficulty: 1, audioUrl: ''),
    
    // 服务行业
    Word(id: 'vendisto_002', esperanto: 'vendisto', english: 'salesperson', pronunciation: 'ven-DIS-to', definition: 'Sales professional', examples: ['La vendisto helpas klientojn (The salesperson helps customers)'], category: 'Professions', difficulty: 1, audioUrl: ''),
    Word(id: 'kelnero_001', esperanto: 'kelnero', english: 'waiter', pronunciation: 'kel-NE-ro', definition: 'Restaurant server', examples: ['La kelnero alportas la manĝaĵon (The waiter brings the food)'], category: 'Professions', difficulty: 1, audioUrl: ''),
    Word(id: 'frizisto_001', esperanto: 'frizisto', english: 'hairdresser', pronunciation: 'fri-ZIS-to', definition: 'Hair styling professional', examples: ['La frizisto tondas harojn (The hairdresser cuts hair)'], category: 'Professions', difficulty: 1, audioUrl: ''),
    Word(id: 'taksisto_001', esperanto: 'taksisto', english: 'taxi driver', pronunciation: 'tak-SIS-to', definition: 'Taxi operator', examples: ['La taksisto kondukas al la flughaveno (The taxi driver drives to the airport)'], category: 'Professions', difficulty: 1, audioUrl: ''),
    Word(id: 'postisto_001', esperanto: 'postisto', english: 'mail carrier', pronunciation: 'pos-TIS-to', definition: 'Mail delivery person', examples: ['La postisto liveras leterojn (The mail carrier delivers letters)'], category: 'Professions', difficulty: 1, audioUrl: ''),
  ];

  // 教育学习词汇 (80个)
  static final List<Word> educationWords = [
    // 学校相关
    Word(id: 'lernejo_002', esperanto: 'lernejo', english: 'school', pronunciation: 'ler-NE-jo', definition: 'Educational institution', examples: ['La infanoj iras al lernejo (Children go to school)'], category: 'Education', difficulty: 1, audioUrl: ''),
    Word(id: 'universitato_001', esperanto: 'universitato', english: 'university', pronunciation: 'u-ni-ver-si-TA-to', definition: 'Higher education institution', examples: ['Ŝi studas en universitato (She studies at university)'], category: 'Education', difficulty: 2, audioUrl: ''),
    Word(id: 'fakultato_001', esperanto: 'fakultato', english: 'faculty', pronunciation: 'fa-kul-TA-to', definition: 'Academic department', examples: ['Li studas en la medicina fakultato (He studies in the medical faculty)'], category: 'Education', difficulty: 2, audioUrl: ''),
    Word(id: 'klasĉambro_001', esperanto: 'klasĉambro', english: 'classroom', pronunciation: 'klas-ĈAM-bro', definition: 'Room for teaching', examples: ['La studentoj sidas en la klasĉambro (Students sit in the classroom)'], category: 'Education', difficulty: 1, audioUrl: ''),
    Word(id: 'biblioteko_002', esperanto: 'biblioteko', english: 'library', pronunciation: 'bi-bli-o-TE-ko', definition: 'Book repository', examples: ['Mi legas en la biblioteko (I read in the library)'], category: 'Education', difficulty: 1, audioUrl: ''),
    Word(id: 'laboratorio_001', esperanto: 'laboratorio', english: 'laboratory', pronunciation: 'la-bo-ra-TO-ri-o', definition: 'Research facility', examples: ['Ni faras eksperimentojn en la laboratorio (We do experiments in the laboratory)'], category: 'Education', difficulty: 2, audioUrl: ''),
    
    // 学习活动
    Word(id: 'studi_001', esperanto: 'studi', english: 'to study', pronunciation: 'STU-di', definition: 'To learn systematically', examples: ['Mi studas matematikon (I study mathematics)'], category: 'Education', difficulty: 1, audioUrl: ''),
    Word(id: 'lerni_002', esperanto: 'lerni', english: 'to learn', pronunciation: 'LER-ni', definition: 'To acquire knowledge', examples: ['Ni lernas novan lingvon (We learn a new language)'], category: 'Education', difficulty: 1, audioUrl: ''),
    Word(id: 'instrui_001', esperanto: 'instrui', english: 'to teach', pronunciation: 'ins-TRU-i', definition: 'To impart knowledge', examples: ['Ŝi instruas biologion (She teaches biology)'], category: 'Education', difficulty: 1, audioUrl: ''),
    Word(id: 'ekzameni_001', esperanto: 'ekzameni', english: 'to examine', pronunciation: 'ek-za-ME-ni', definition: 'To test knowledge', examples: ['La profesoro ekzamenas studentojn (The professor examines students)'], category: 'Education', difficulty: 2, audioUrl: ''),
    Word(id: 'diplomi_001', esperanto: 'diplomi', english: 'to graduate', pronunciation: 'dip-LO-mi', definition: 'To complete studies', examples: ['Li diplomis de universitato (He graduated from university)'], category: 'Education', difficulty: 2, audioUrl: ''),
    
    // 学科
    Word(id: 'matematiko_002', esperanto: 'matematiko', english: 'mathematics', pronunciation: 'ma-te-ma-TI-ko', definition: 'Study of numbers', examples: ['Matematiko estas grava subjekto (Mathematics is an important subject)'], category: 'Education', difficulty: 1, audioUrl: ''),
    Word(id: 'fiziko_002', esperanto: 'fiziko', english: 'physics', pronunciation: 'fi-ZI-ko', definition: 'Study of matter and energy', examples: ['Fiziko klarigas naturajn fenomenojn (Physics explains natural phenomena)'], category: 'Education', difficulty: 2, audioUrl: ''),
    Word(id: 'kemio_002', esperanto: 'kemio', english: 'chemistry', pronunciation: 'KE-mi-o', definition: 'Study of substances', examples: ['En kemio ni studas atomojn (In chemistry we study atoms)'], category: 'Education', difficulty: 2, audioUrl: ''),
    Word(id: 'biologio_002', esperanto: 'biologio', english: 'biology', pronunciation: 'bi-o-lo-GI-o', definition: 'Study of life', examples: ['Biologio studas vivajn estaĵojn (Biology studies living beings)'], category: 'Education', difficulty: 2, audioUrl: ''),
    Word(id: 'historio_002', esperanto: 'historio', english: 'history', pronunciation: 'his-TO-ri-o', definition: 'Study of the past', examples: ['Historio instruas nin pri antaŭaj epokoj (History teaches us about past eras)'], category: 'Education', difficulty: 1, audioUrl: ''),
    Word(id: 'geografio_001', esperanto: 'geografio', english: 'geography', pronunciation: 'ge-o-gra-FI-o', definition: 'Study of Earth', examples: ['Geografio studas landojn kaj oceanojn (Geography studies countries and oceans)'], category: 'Education', difficulty: 2, audioUrl: ''),
    Word(id: 'lingvistiko_001', esperanto: 'lingvistiko', english: 'linguistics', pronunciation: 'ling-vis-TI-ko', definition: 'Study of language', examples: ['Lingvistiko analizas lingvojn (Linguistics analyzes languages)'], category: 'Education', difficulty: 3, audioUrl: ''),
    Word(id: 'literaturo_002', esperanto: 'literaturo', english: 'literature', pronunciation: 'li-te-ra-TU-ro', definition: 'Study of written works', examples: ['Ni legas klasikan literaturon (We read classical literature)'], category: 'Education', difficulty: 2, audioUrl: ''),
  ];

  // 交通运输词汇 (70个)
  static final List<Word> transportWords = [
    // 陆地交通
    Word(id: 'aŭto_002', esperanto: 'aŭto', english: 'car', pronunciation: 'AŬ-to', definition: 'Personal vehicle', examples: ['Mi veturas per aŭto (I travel by car)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    Word(id: 'buso_001', esperanto: 'buso', english: 'bus', pronunciation: 'BU-so', definition: 'Public transport vehicle', examples: ['La buso haltas ĉe la stacio (The bus stops at the station)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    Word(id: 'tramo_001', esperanto: 'tramo', english: 'tram', pronunciation: 'TRA-mo', definition: 'Electric rail vehicle', examples: ['La tramo veturas tra la urbo (The tram travels through the city)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    Word(id: 'metro_001', esperanto: 'metro', english: 'subway', pronunciation: 'ME-tro', definition: 'Underground railway', examples: ['La metro estas rapida (The subway is fast)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    Word(id: 'treno_001', esperanto: 'treno', english: 'train', pronunciation: 'TRE-no', definition: 'Railway vehicle', examples: ['La treno alvenas je la stacio (The train arrives at the station)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    Word(id: 'biciklo_001', esperanto: 'biciklo', english: 'bicycle', pronunciation: 'bi-CIK-lo', definition: 'Two-wheeled vehicle', examples: ['Mi pedalas per biciklo (I pedal a bicycle)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    Word(id: 'motorciklo_001', esperanto: 'motorciklo', english: 'motorcycle', pronunciation: 'mo-tor-CIK-lo', definition: 'Motorized two-wheeler', examples: ['La motorciklo estas laŭta (The motorcycle is loud)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    Word(id: 'kamiono_001', esperanto: 'kamiono', english: 'truck', pronunciation: 'ka-mi-O-no', definition: 'Large cargo vehicle', examples: ['La kamiono transportas varojn (The truck transports goods)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    
    // 水上交通
    Word(id: 'ŝipo_001', esperanto: 'ŝipo', english: 'ship', pronunciation: 'ŜI-po', definition: 'Large water vessel', examples: ['La ŝipo navgas sur la maro (The ship sails on the sea)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    Word(id: 'boato_001', esperanto: 'boato', english: 'boat', pronunciation: 'bo-A-to', definition: 'Small water vessel', examples: ['Ni vetur as per boato (We travel by boat)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    Word(id: 'jato_001', esperanto: 'jato', english: 'yacht', pronunciation: 'JA-to', definition: 'Luxury boat', examples: ['La riĉulo posedas jaton (The rich person owns a yacht)'], category: 'Transportation', difficulty: 2, audioUrl: ''),
    Word(id: 'submarŝipo_001', esperanto: 'submarŝipo', english: 'submarine', pronunciation: 'sub-mar-ŜI-po', definition: 'Underwater vessel', examples: ['La submarŝipo plonĝas sub la akvon (The submarine dives under water)'], category: 'Transportation', difficulty: 2, audioUrl: ''),
    
    // 空中交通
    Word(id: 'aviadilo_001', esperanto: 'aviadilo', english: 'airplane', pronunciation: 'a-vi-a-DI-lo', definition: 'Flying vehicle', examples: ['La aviadilo flugas en la ĉielo (The airplane flies in the sky)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    Word(id: 'helikoptero_001', esperanto: 'helikoptero', english: 'helicopter', pronunciation: 'he-li-kop-TE-ro', definition: 'Rotorcraft', examples: ['La helikoptero povas flugi vertikale (The helicopter can fly vertically)'], category: 'Transportation', difficulty: 2, audioUrl: ''),
    Word(id: 'balono_001', esperanto: 'balono', english: 'balloon', pronunciation: 'ba-LO-no', definition: 'Air-filled flying object', examples: ['La varmaera balono leviĝas (The hot air balloon rises)'], category: 'Transportation', difficulty: 2, audioUrl: ''),
    
    // 交通设施
    Word(id: 'stacio_001', esperanto: 'stacio', english: 'station', pronunciation: 'sta-CI-o', definition: 'Transport hub', examples: ['Ni atendas en la stacio (We wait at the station)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    Word(id: 'flughaveno_001', esperanto: 'flughaveno', english: 'airport', pronunciation: 'flug-ha-VE-no', definition: 'Air transport facility', examples: ['La aviadilo ekflugas de la flughaveno (The airplane takes off from the airport)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    Word(id: 'haveno_001', esperanto: 'haveno', english: 'port', pronunciation: 'ha-VE-no', definition: 'Water transport facility', examples: ['La ŝipo alvenas al la haveno (The ship arrives at the port)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    Word(id: 'garaĝo_001', esperanto: 'garaĝo', english: 'garage', pronunciation: 'ga-RA-ĝo', definition: 'Vehicle storage', examples: ['Mi parkas la aŭton en la garaĝo (I park the car in the garage)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
    Word(id: 'benzinstacio_001', esperanto: 'benzinstacio', english: 'gas station', pronunciation: 'ben-zin-sta-CI-o', definition: 'Fuel supply facility', examples: ['Ni haltas ĉe benzinstacio (We stop at a gas station)'], category: 'Transportation', difficulty: 1, audioUrl: ''),
  ];

  // 获取所有词汇
  static List<Word> getAllWords() {
    return [
      ...professionWords,
      ...educationWords,
      ...transportWords,
    ];
  }

  // 根据类别获取词汇
  static List<Word> getWordsByCategory(String category) {
    return getAllWords().where((word) => word.category == category).toList();
  }

  // 获取所有类别
  static List<String> getAllCategories() {
    final categories = getAllWords().map((word) => word.category).toSet().toList();
    categories.sort();
    return categories;
  }
} 